Automated on-line information service and directory, particularly for the world wide web

ABSTRACT

Methods and apparatus for facilitating online transactions are disclosed. Preferred embodiments include a web site configured to associate customer and purchase information corresponding to a user and complete an online transaction for items to be purchased when the user clicks on an icon.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of co-pending U.S. patentapplication Ser. No. 10/703,823, filed Nov. 7, 2003, which is acontinuation of co-pending U.S. patent application Ser. No. 09/952,985,filed Sep. 14, 2001, which is a continuation of U.S. patent applicationSer. No. 09/110,708, filed Jul. 7, 1998, now issued as U.S. Pat. No.6,324,538, which is a continuation of U.S. patent application Ser. No.08/572,543, filed Dec. 14, 1995, now issued as U.S. Pat. No. 5,778,367.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to on-line services, particularlyto services for the World Wide Web.

[0004] 2. State of the Art

[0005] The Internet, and in particular the content-rich World Wide Web(“the Web”), have experienced and continue to experience explosivegrowth. The Web is an Internet service that organizes information usinghypermedia. Each document can contain embedded reference to images,audio, or other documents. A user browses for information by followingreferences. Web documents are specified in HyperText Markup Language(HTML), a computer language used to specify the contents and format of ahypermedia document (e.g., a homepage). HyperText Transfer Protocol(HTTP) is the protocol used to access a Web document.

[0006] Part of the beauty of the Web is that it allows for thedefinition of device-, system-, and application-independent electroniccontent. The details of how to display or play back that content on aparticular machine within a particular software environment are left toindividual web browsers. The content itself, however, need only bespecified once. In some sense, then, the Web offers the ultimate incross-platform capability.

[0007] Pre-existing collections of information, however, such asdatabases of various kinds, can rarely be placed directly on the Web.Rather, gateway programs are used to provide access to a wide variety ofinformation and services that would otherwise be inaccessible to Webclients and servers. The Common Gateway Interface (CGI) specificationhas emerged as a standard way to extend the services and capabilities ofa Web server having a defined core functionality. CGI “scripts” are usedfor this purpose. CGI provides an Application Program Interface,supported by CGI-capable Web servers, to which programmers can write toextend the functionality of the server. CGI scripts in large partproduce from non-HTTP objects HTTP objects that a Web client can render,and also produce from HTTP objects non-HTTP input to be passed on toanother program or a separate server, e.g., a conventional databaseserver. More information concerning the CGI specification may beaccessed using the following Universal Resource Locator (URL):http://hoohoo.ncsa.uiuc.edu/cgi/interfac.html

[0008] With the explosive growth of the Web, fueled in part by theextensibility provided by CGI scripts, the need for “finding aids” forthe Web, i.e., tools to allow one to find information concerning a topicof interest, has grown acute. Many hardcopy volumes are presentlyavailable that are represented to be “White Pages” or “Yellow Pages” forthe Web. Of course, hard copy information becomes rapidly out of date,and in the case of the Web, is out of date before it is even printed(let alone distributed), in the sense of failing to list manyinteresting resources newly made available on the Web.

[0009] The only effective solution is to have such finding aids beon-line, available on the Web itself. One such finding aid is a class ofsoftware tools called search engines. Search engines rely on automatedWeb-traversing programs called robots or spiders that follow link afterlink around the Web, cataloging documents and storing the informationfor transmission to a parent database, where the information is sifted,categorized, and stored. When a search engine is run, the databasecompiled through the efforts of the robots and spiders is searched usinga database management system. Using keywords or search terms provided bythe user, the database locates matches and possibly near-matches aswell.

[0010] An example of one such search engine is known as Yahoo, offeredby Yahoo! Corporation of Mountain View, Calif., and may be accessed atthe URL http://www.yahoo.com. Persons having pages on the Web, ratherthan simply waiting to have their Web page be found by a robot orspider, can also have their Web page listed in the Yahoo database byproviding information concerning the resource they wish to list andpaying a fee. The result is an on-line-searchable directory of Webresources that is regularly updated.

[0011] While such services are indeed extremely useful, nevertheless,from the standpoint of a person wishing to publicize their Web site,they are typically attended by a number of drawbacks. In particular, theperson wishing to publicize their Web site typically has very limitedcontrol of the content of the resulting listing. Submissions, includingtextual description and suggested categories, are often subjected toeditorial control that may range from strict to arbitrary. As a result,a listing may be placed under an entirely different category from thecategory intended by the person making the submission. Furthermore, thetextual description may be heavily edited (in some instances almostbeyond recognition)—or even deleted—depending on the exaction of theeditor. Because of this editorial process, posting of the listing is notimmediate. Furthermore, once the listing has been posted to thedatabase, if the person making the listing later wishes to change thelisting in some respect, the change must again pass through the samelaborious channel. Hence, the process of adding and updating listings isinconvenient and unsatisfactory.

[0012] Moreover, the nature of the listing is rather prosaic. Thelisting is in title/brief-description format and does not includegraphical elements or otherwise appeal to the artistic sensibilities ofthe viewer. In this sense, the listing is comparable to the standardtelephone book listing, which appears in plain text, nothing added, ascompared, say, to a quarter-page advertisement with custom artwork andthe like.

[0013] To use the foregoing service, one is required have a Webhomepage. If a user has no Web presence but wishes to establish one, theforegoing service is entirely unavailable. The typical user must firstestablish a Web presence by paying a Web consultant to produce ahomepage and then paying an Internet Service Provider to house thathomepage on the Web. This undertaking can prove to be quite costly foran individual or a small business.

[0014] What is needed, then, is an information service that overcomesthe foregoing disadvantages.

SUMMARY OF THE INVENTION

[0015] The present invention, generally speaking, uses a computernetwork and a database to provide a hardware-independent, dynamicinformation system in which the information content is entirelyuser-controlled. Requests are received from individual users of thecomputer network to electronically publish information, and input isaccepted from the individual users. Entries from the users containingthe information to be electronically published are automaticallycollected, classified and stored in the database in searchable andretrievable form. Entries are made freely accessible on the computernetwork. In response to user requests, the database is searched andentries are retrieved. Entries are served to users in ahardware-independent page description language. The entries are passwordprotected, allowing users to retrieve and update entries by supplying acorrect password.

[0016] Preferably, the process is entirely automated with any necessarybilling being performed by secure, on-line credit card processing. Theuser making a database entry has complete control of that entry both atthe time the entry is made at any time thereafter. The entry, whenserved to a client, is transformed on-the-fly to the page descriptionlanguage. Where the page description language is HTML and the computernetwork is the World Wide Web, the entry may function as a “mini”homepage for the user that made the entry. Provision is made forgraphics and other kinds of content besides text, taking advantage ofthe content-rich nature of the Web.

[0017] Because the user controls both the content of an entry and themanner in which it is classified, the database functions as a directoryto allow the Web public to quickly and precisely find current andaccurate data about the user, the user's products and services, etc.,without requiring the user to have a conventional Web homepage. Theuser's mini homepage can be included in many different categories, withthe user having the flexibility to change the categories or thedescriptive content of the page at any time. Preferably, hyperlinkservices are also provided, by including within the page links to anE-mail address or to one or more other conventional homepages (or othermini homepages). The E-mail address may be a private E-mail addressestablished on the host machine, avoiding the need to obtain aconventional E-mail address. An inexpensive way is therefore provided toset up a Web site with key information that might otherwise be verycostly to widely distribute, and to achieve an Internet presence with aminimum of effort and expense.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The present invention may be further understood from thefollowing description in conjunction with the appended drawing. In thedrawing:

[0019]FIGS. 1A and 1B are simplified block diagrams of alternativeembodiments of the system of the present invention;

[0020]FIG. 2A through FIG. 2T are screen shots showing use of the systemand method of the present invention;

[0021]FIG. 3 is a flowchart of the operational steps involved in thepresent system and method;

[0022]FIG. 4 is a block diagram showing various ones of the HTMLfront-ending tools of FIG. 1 and their functional interrelationships;and

[0023]FIG. 5 is a simplified block diagram showing the manner in whichwhois and traceroute services are made readily available through HTMLfront-ending and augmented with hyperlink services.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] Referring to FIG. 1A, there is shown a simplified block diagramof the system of the present invention. A server site 101 is connectedto the computer network 103 such as the Web or a Wide Area Network (WAN)other than the Web. At the server site, server software runs on asuitable server platform. In the case of the Web, for example, theserver of FIG. 1A might be a server available from the National Centerfor Supercomputing Applications (NCSA), or a secure server package of aknown, commercially-available type, running on a super-minicomputer suchas a SunServer machine available from Sun Microsystems of Menlo Park,Calif., or on any of a wide variety of suitable UNIX platforms. Alsorunning, either on the same machine or a network-accessible machine, isa database management system 107. Preferably, the database managementsystem 107 supports Standard Query Language, or SQL. One suitabledatabase management system is MiniSQL, which is also commerciallyavailable.

[0025] SQL databases, however, are not inherently “Web-friendly.”Accordingly, a variety of HTML front-ending tools 109 are provided whichrun as extensions to the server software, allowing computer networkusers to each add entries to a database, search entries in the database,and update entries by that particular user, all using the Web (or aWeb-like) graphical user interface. The server software and the HTMLfront-ending tools communicate through the Common Gateway Interface 111.In accordance with another embodiment, shown in FIG. 1B, the HTMLfront-ending tools may be fully integrated with the server software. TheHTML front-ending tools and the database communicate through SQL (113).

[0026] When a network user visits the server site, the user is served amain page in a page description language such as HTML. The userinteracts with the page, making selections or requests. These selectionsor requests, although they may not appears as such to the user, are ineffect page requests, e.g., URLs that access a page directly or thatcall a CGI script to perform some sort of processing. The result of theselection or request may be a page eliciting a further selection orrequest, or may be contain the desired information itself.

[0027] In order to convey the manner in which the automated informationservice and directory is used, screen displays of the graphical userinterface will now be described.

[0028] When a user first visits the site, he or she is presented with amain page as shown in FIG. 2A. Along the side of the page are icons thatmay be clicked on to select different services. An icon 201 selects a“WebBook” service in which database entries may be searched, viewed andupdated. An icon 203 selects a “WebWho Whois” service, providing agraphical front end to the United States Whois database, with additionalhypertext link integration. An icon 205 selects the “WebWho Traceroute”service, providing a graphical front end to the Traceroute utility,again with additional hypertext link integration. An icon 207 in the topleft shows the current page's icon and is not linked.

[0029] When the icon 201 is selected, the user is presented with a pagelike that shown in FIGS. 2B, 2C, and 2D. At the top of the page appearsa table 209 presenting examples of valid entry types for Whois, i.e.,Domain Name, Machine Name, Registered Handle, Registered Name, IPAddress and IP Network. Next appears a text input field 211 to receivethe information to be looked up. Next appears an example of the resultsof a specific lookup. The user has input his or her request, and resultshave been received back and displayed in a results area 213. Asdescribed more fully below, links are embedded in the results such that,by clicking on an area 215 displaying ccoley@SRMC.COM, for example, anE-mail utility will be invoked showing a blank E-mail addressed toccoley@SRMC.COM. Similarly, domain names, IP addresses, etc. may beclicked on, with the result that Whois is queried once again withrespect to the selected information.

[0030] At the bottom of the page appears a Navigational Aid 217 usedthroughout the user interface where appropriate to allow the user toreturn directly to a particular entry point in the program flow withouthaving to follow numerous links as is typical of the prior art.

[0031] When the icon 203 is selected, the user is presented with a pagefor the Traceroute utility like that shown in FIGS. 2E and 2F. Thevarious features of the page will be evident from the precedingdescription. One feature, however, bears particular mention. That is,just as clicking a domain name or the like in Whois produces a furtherquery, bringing up additional information, similarly, clicking on namesor addresses in FIG. 2C also produces a further query, not of Traceroutebut of Whois. For example, if one wanted to find additional informationabout the machine on line number of 1 of FIG. 2C, one could simply clickon the IP address 205.138.192.1 displayed in the area 219. This actionwould produce the same result as if the user had copied down the IPaddress, navigated to Whois and entered the IP address in the lookupfield.

[0032] When the icon 205 is selected, the user is presented with a pagelike that shown in FIG. 2G. The navigation aid previously described,although not shown in FIG. 2G, may also be included if desired. The useris given the options of searching the database, adding a new entry,updating an existing entry, changing the user's password, or logging in.As described below, login is typically not required to view a listing ofentries satisfying a particular search request, although login may berequired to view an actual entry itself and is required to update anentry.

[0033] When the Search option is selected, the user is presented with apage like that shown in FIG. 2H. Within WebBook, a different type ofnavigational aid 221 is included that allows the user to quickly moveabout within WebBook, between Search, Add and Update, or to go to themain page of FIG. 2A. The screen of FIG. 2H allows the user to selectbetween different searching methods, including searching by Categories(going through a categories list), by Example (querying each field ofthe entries), and by Keyword (specifying a keyword).

[0034] When Categories is selected, the user is presented with a pagelike that shown in FIG. 21. In the example shown, three root-levelcategories are presented, BUSINESS, RECREATION, and WEBWHO95. The userselects one of these categories to show further subcategories, as seenin FIG. 23, which is displayed in response to the user selectingWEBWHO95. A single subcategory is shown—INDEX, having 9250 entries. Theentries are listed by title within the lower part of the page. The usermay select how many entries are to be displayed at a time in order toquicken response time. Also, presorts are used in order to quicklydisplay the results of a category or keyword search.

[0035] When Example is selected, the user is presented with a page likethat shown in FIG. 2K. The user enters the information to be searched inany field or combination of fields to be searched.

[0036] To add a new entry to the database, the user is presented with apage like that shown in FIG. 2L. Each information item in the upperportion of the form is required, unless otherwise indicated. If arequired item is not provided, the program will redisplay the form andrequest the user to complete all required items. Optional items includemiddle name, alternate phone number, fax number, URL#1, and URL#2.

[0037] The remainder of the form is used to enter up to twenty keywordsand a description of the user's entry, to be displayed with the entry.

[0038] Following entry of keywords and a description of the entry, theuser is requested to choose a category for the entry by presenting theuser with a page like that shown in FIG. 2M. The user can navigate thecategory tree until he or she has located the desired category and thenselect that category. If none of the categories is adequate, then theuser may define his or her own category, by entering the name of thecategory and a short description of the category. The new category willthen be added to the category tree.

[0039] A sample mini homepage is shown in FIGS. 2N and 2O. The minihomepage may be located by searching the database and then selecting thecorresponding entry, or may be retrieved directly by URL. The URL of themini homepage itself should not be confused with URL#1 and URL#2 listedon the mini homepage. The latter refer to independent resources. The URLof the mini homepage itself is, for example, based on a uniquetransaction ID assigned to each entry and may be entered into a browserprogram to view the mini homepage directly without searching.

[0040] When Update is selected (FIG. 2G), the user, having entered thecorrect transaction ID and password, is presented with a page like thatshown in FIG. 2P. The corresponding mini homepage is displayed, and theuser is requested to update the mini homepage (the “post”). When theuser has edited the entry to his or her satisfaction, the user pressesUPDATE. The user is then presented with a further page like that shownin FIGS. 2Q and 2R, giving him or her the opportunity to review onefinal time the comments and keywords. To change the comments orkeywords, the user presses BACK. The user can also change the categoryof the entry by pressing the Change category button. To accept andcomplete the update, the user presses a Done update button.

[0041] A page like that shown in FIG. 2S is then presented. The user isrequired to enter the identification number of the post. If theidentification number is entered correctly, the post is updated, and apage like that shown in FIG. 2T is presented to the user, confirming theupdate.

[0042] Referring now to FIG. 3, the operational steps involved in thepresent system and method are represented. The system is accessed eitherdirectly by the user or by following a link to the server site, forexample the URL WebWho.com. The name WebWho.TM is a trademark of thepresent assignee.

[0043] The user is first presented with a page 301 (index.shtml)allowing the user to select from different services, including whois andtraceroute. As described previously, whois is an Internet service thatlooks up information about a user in a database. Traceroute is a programthat permits a user to find the path a packet will take as it crossesthe Internet to a specific destination. Whois and traceroute are knownservices. Previously, however, use of these services has typicallyrequired “root-user access” on a UNIX host. In accordance with oneaspect of the present invention, these services are HTML front-ended andmade available to all users, together with further hyperlink servicesthat greatly increase the utility of the underlying whois and tracerouteservices.

[0044] Referring to FIG. 5, whois and traceroute are made readilyavailable to all network users through HTML front-ending using CGIscripts. The actual whois code 501 and traceroute code 503 remainswithin the root directory 500 on a UNIX host. Respective CGI scripts areprovided, namely whois.cgi (505) and traceroute.cgi (507), that haveroot user privileges and that provide HTML front-ending between the userand their respective services. For example, when a user selects theWebWho Whois service from the main page of FIG. 2A, the whois.cgi script505 is invoked to pass the user input to the root directory whoisservice 501 and cause it to service the user's request. Output from theroot directory whois service 501 is passed back from the whois.cgiscript 505 in HTML format. The same description applies equally to thetraceroute.cgi script and the root directory traceroute service.

[0045] To further augment the whois and traceroute services, hyperlinkservices are provided. The root directory whois and traceroute servicesare provided with a parsing routine 509 that parses the output of theseservices to identify E-mail addresses, domain names, IP names,etc.—character strings containing period separators and/or the character“@.” The parser then passes back this information to the CGI scripts inthe form of links, links to the whois.cgi script 505 in the case ofnames and links to an E-mail.cgi script 511 in the case of E-mailaddresses. The E-mail.cgi script 511 controls an E-mail utility 513 thatmay be located in the root directory or in a different directory.

[0046] Whois and traceroute, as implemented as part of the presentinvention, provide powerful new tools for serious Internet tools. Usingwhois, the user may type in any address with a “.com”, “.edu” or “.net”extension and find the physical address, phone number and theindividual(s) that the address represents. This ability may be used as apowerful marketing tool to find a wealth of information about people onthe Internet. Also, whois can be used to instantly check a domain name.

[0047] Traceroute may be used by System Administers to obtaininformation to make their jobs much easier. Previously, SystemAdministrators have not been allowed to use traceroute on a PC runningany operating system other than UNIX.

[0048] Whereas whois and traceroute are more technically oriented,“WebBook” allows non-technical users to take advantage of thecapabilities of the Web with a minimum of effort. WebBook allows a userto have HTML-front-ended access to a database of mini homepages in orderto search, add entries to, or update previous entries in the database.

[0049] Referring again to FIG. 3, if WebBook is chosen, a login routine303 may request the to enter identifying information of the type thatwould normally be found on a business card, for example. Presently,although Web sites are able to track the user's access point to the Web(for example, a particular slip connection through an Internet ServiceProvider), this information often gives no indication who the userreally is. Such information is important in order to evaluate the extentto which a target audience is being reached.

[0050] The user may choose an option that allows the user to bypass thelogin request. The request for information as to the identity of theuser therefore may or may not be complied with; moreover, theinformation provided may or may not be accurate. As an incentive toprovide the requested information (and, it is hoped, the correctinformation), users providing the requested information may be givenmore complete access to the database than users who do not provide therequested information. Users providing the requested information areassigned a user ID to be used during subsequent accesses and arerequested to choose a password. The password may be required to accesssome system services. To further encourage voluntary login, users thathave complied with the login request and have been assigned a user IDmay be afforded the ability to customize the user interface and maintainthe resulting look and feel between uses. This customization isperformed in a known manner by storing on the host a user preferencesfile and accessing the file to restore user preferences when a validuser ID is provided.

[0051] For a period during the initial stages of the service, while thedatabase is still being built up, it may be desirable to allow all userscomplete access to the database regardless of whether or not they haveidentified themselves.

[0052] Following the login procedure, the user is provided with a page305 presenting the different ways that the user may interact with thedatabase. For example, a user may search the database, add a new entryto the database, or update a previous entry to the database by thatuser. Each of these options will be described in turn.

[0053] If the user chooses to search the database, the user is providedwith a page 307 concerning different search options. A search may beperformed on one or more of a number of different database fields,depending on the organization of the database entries. For example, in apreferred embodiment, the database entries include the following definedfields: uid country fname email lname url mname keywords title commentident category phone 1 active phone 2 start.sub.-- date faxexpire.sub.-- date addr info1 (Reserved) city info2 (Reserved) stateinfo3 (Reserved) zipcode info4 (Reserved)

[0054] In one embodiment, searches may be performed by category, bykeyword, by URL, or by example. To facilitate rapid retrieval ofinformation, presorted listings may be stored for each category andkeyword or for some number of the most common categories and keywords.To search by example, the user is provided with a form having the sameorganization as the database entries. The user fills in information inthe fields of interest. The search then returns information concerningentries having matching information in those fields. Entries aredisplayed in list fashion by title on a page 309.

[0055] The number of entries produced by a search may be very large.Therefore, instead of displaying a listing for all of the entries atonce, the entries may be displayed ten at a time, for example.Alternatively, only the first 100 or 200 entries may be displayed.

[0056] While some sites may provide information and services free ofcharge, for example as a result of volunteerism or advertisingsubsidies, other sites may have a business model in which users arecharged for information or services or both. For such a site, it becomescritical to protect the information stored in the database. Therefore,unlike some existing databases in which actual hypermedia links to Webhomepages are stored in the listed items, in order to prevent effectualpirating of the database, links are embedded only in the full entryitself, not in the entry listings. Otherwise a user could simply store avoluminous listing or various different listings, with theiraccompanying hypermedia links, and thereby capture in large part theentire benefit of the database. Instead, an item in a listing isintended only to give the user enough information to gauge the user'sfurther interest in an item. If the user is interested in an item, theuser may select that item, causing the full-page entry to be provided.The full page entry includes links to any E-mail address or URL that theowner of the entry may have provided, thereby providing a link to thatperson's or organization's homepage (or to some other homepage).

[0057] If the user bypassed login, as determined in step 311, he or shewill normally be returned to the login procedure when attempting toselect an entry to view it in its entirety. If the user has logged in,then the user may select an entry and the corresponding full page 313will be served to the user.

[0058] The full page entry 313 need not be limited to text alone but maybe a complete hypermedia page, including possible graphics or othernon-textual content. In this manner, for person's or organizations nothaving any independent Web homepage, the entry can function as a“mini-homepage,” i.e., a single page hypermedia document. Furthermore,the mini-homepage may have its own URL, allowing it to be accesseddirectly without performing a search of the database. For example, a URLfor a mini homepage might be http://webwho.com/view?id=xxxx, where xxxxrepresents a transaction ID assigned to each entry in a manner describedbelow.

[0059] A link 315 is embedded in the mini-homepage to allow for the pageto be updated. Prior to describing the manner in which the mini-homepageis updated, however, the manner of adding a new entry to the databasewill first be described.

[0060] In order to add an entry to the database, a user must login,during which the user chooses a password, or must have logged in duringa previous visit to the site. When the user chooses to add a new entryto the database, a unique transaction ID is created for that entry, tobe used throughout the life of the entry. A unique transaction ID may becreated in any of many different ways. For example, the transaction IDmight be the date (e.g., 951215) and the entry number for that date(e.g., 00215). Alternatively, the transaction ID might be the time ofday (e.g., HHMMSS) and the process ID of the host machine process thatis servicing the user's request. In one embodiment, the transaction IDis a 14-digit hexadecimal number in which eight digits represent thenumber of seconds since an arbitrary date (e.g., Jan. 1, 1970), fourdigits represent the process ID running on the host machine, and twodigits represent a portion of the machine IP address (to distinguishbetween different host machines).

[0061] Once a transaction ID has been assigned, the user is thenprovided with an entry form 317 having fields corresponding to thevarious fields of a database entry as described previously. The userfills out the form and presses a screen button when the entry iscomplete. The form may have one or more checkboxes 319 to indicate thedesire to include with the entry one or more non-textual elements, suchas a graphic image, etc. Also, if desired, different templates may beprovided governing the appearance of the finished page, with the userselecting a desired template.

[0062] Non-textual content may be obtained from the user in any of anumber of different ways. For example, the user may transfer to the sitea file containing the non-textual content using the File TransferProtocol (FIP) with the same user ID and password as when the entry wasadded.

[0063] During the entry process, the user is prompted to enter keywordsto facilitate later searching of the database and location of the entry.Furthermore, the HTML front-end tools may assist in developing keywordsfor the entry. A pre-searchtsort tool, for example, might take the 2000top keywords found in the database within the keyword field and do atotal text search throughout the database for these keywords. If one ormore of these keywords appears in the description (“comment” field) ofan entry but not in the keyword list, these keywords are then added to akeyword extension field for up to some number of keywords, e.g. five.

[0064] If the server site is based on a pay-for-service model, the formwill also call for the user to enter a credit card number as the lastpiece of information. Secure, on-line credit card processing will thenbe performed to bill the user, either on a onetime basis, on a periodicbasis, or on an occasional basis as future services may require.Although various methods of processing credit card transaction on-linehave been proposed, with various degrees of attendant security, suchprocessing is preferably performed in accordance with a proprietarymethod developed by the assignee to provide the highest level ofsecurity possible.

[0065] After an entry has been made, it may be updated at any time byone able to provide the transaction ID assigned to the entry and theuser password, i.e., by the user or one acting on behalf of the user.The update option may be entered directly, or the entry to be updatedmay first be viewed as the result of a search and the update screenbutton 315 then pressed. The user is then prompted to supply the correcttransaction ID and password (page 321), failing which the user will notbe allowed to update the entry.

[0066] If the transaction ID and password are correctly supplied, thenthe equivalent of a new entry form will be provided to the user will thecurrent information pertaining to the entry already filled in. The usermay then modify the entry. If a charge is made for updating the entry,preferably the credit card information from the earlier creation of theentry will have been stored in a highly secure fashion, avoiding theneed to reenter the information. Both security and convenience arethereby enhanced.

[0067] Nothing in the process of adding, searching and updating entriesrequires manual intervention. Rather, the entire process is automatedand may be made available continuously, 24 hours a day, 365 days a year.Like a publicly-accessible bulletin board, the content that is posted onthe database is entirely within the control of the user, both at thetime the entry is posted and all times thereafter.

[0068] Referring now to FIG. 4, various ones of the HTML front-endingtools of FIG. 1 and their functional interrelationships will now bedescribed.

[0069] When a user visits the site and the WebWho option is selected, apage WebWho.html (401) is served to the user, offering the user variousoptions, including, for example, options to search the database, add anew entry, update an existing entry, change the user's password, or tolog in if the user has not previously done so. In an exemplaryembodiment, the routines illustrated in FIG. 4 are standard C routines,called from a single CGI script. In other embodiments, the routines maybe called by separate scripts, and may be written other languages suchas in a UNIX shell language, or in one of a number of emerging Internetcomputer languages such as Java.

[0070] The Options routine 403 reads in the user's choice and invokesone of the five following routines: Search (405), Add (407), Update(409), Changepw (411), and Login (413). Each of these options will bedescribed in turn.

[0071] If Search is chosen, the Search routine 405 initiates one ofseveral possible search functions. In a preferred embodiment, thesefunctions include a categories search, an example search, and a keywordsearch. According to the search function chosen, the Search routineinvokes one of the following routines: Categories (415), Example (417),and Key.sub.—Search (419).

[0072] Categories are represented in computer memory in the form of atree structure. A categories search starts from the root level, with theCategories routine 415 displaying all the categories available at thatlevel, and all the entries (or up to some number of entries) belongingto that level. The user can click on any category to go to the nextlevel, and can click on any entry to bring up the mini page of theentry.

[0073] If Example is chosen, the Example routine 417 displays a form forthe user to fill in any field he or she wants to search on. The Exampleroutine 417 reads in the information and displays all the entries thatmatch what has been specified.

[0074] If Keyword is chosen, the Key.sub.—ysearch routine 419 displaystext boxes to read in up to a specified number of keywords (e.g., four)to search on. The Key.sub.—search routine 419 displays all the entriesthat match the specified keywords.

[0075] When a user clicks on one of the entries returned by a searchfunction, the mini page is displayed by a List.sub.—entries routine 421.List.sub.—entries displays the mini page for a particular entry and alsocontains an update button for the user to update that particular entry.

[0076] When a user specifies that he or she wants to edit the entrycurrently being displayed, the Update routine 409 performs a check tosee if that page belongs to the user currently logged in. If so,updating is initiated by invoking an Update post routine 423. Otherwise,an Update.sub.—login routine 425 is called to allow the user to performthe correct login sequence. The Update.sub.—login routine 425 reads in auser ID and password and matches them against the database to determineif the user is the owner of the mini page currently being displayed.Updating is not allowed until the correct user ID and password areentered.

[0077] The Update-post routine 423 displays an entry form with valuesfilled in from the information stored in the database. It invokes aDo.sub.—update routine 427 to process the new values being entered. TheDo.sub.—update routine reads in the new information, makes sure that allthe required information is filled. If not, a routine Do.sub.—missing isinvoked. When all of the required information has been supplied, aUpdate.sub.—key routine 429 reads in the keywords and comments from thedatabase entry, displays them, and asks the user to confirm. The usercan go ahead and update the database or can change the category theentry currently belongs to.

[0078] If the user chooses to change the category, a Change.sub.—catroutine 431 displays all the categories at the root level. The user canclick on one of the categories to go to the next level or can specify anew category on the current level. If the user chooses to go ahead andupdate the database, another form is displayed to read in theidentification number of the entry. A Get.sub.—ident routine 435 is theninvoked. If the user chooses to change the category, an Update.sub.—catroutine 433 handles navigation through the categories tree. It will keepdisplaying the categories on the current level until the user hasdecided on a category or has specified a new category.

[0079] The routine Get.sub.—ident 435 reads in the identification numberand matches it against the identification number stored in the databasefor the current entry. If they match, the database is updated;otherwise, the program declines the update.

[0080] Entries may also be updated directly without searching, using theUpdate routine 409. If a user is currently logged in, the Update routine409 displays all the entries belonging to that user. Otherwise, theUpdate.sub.—login routine 425 performs a login and displays all theentries belonging to the newly logged-in user. The remaining updateroutines have already been described as a continuation of the searchoptions and will therefore not be further described.

[0081] When Add is selected, the Add routine 407 displays an empty formto allow the user to fill in all the information. The Add routine 407processes the information that has been entered, using theDo.sub.—missing routine to make sure that all the required informationis entered. The Do.sub.—missing routine displays the form again untilall the required information is entered.

[0082] After all the required information has been entered, aGet.sub.—info routine 437 displays another form to read in the keywordsand comments. A Confirm.sub.—info routine 439 processes the keywords andcomment being entered and displays them again, asking the user toconfirm. After the user confirms the keywords and comments, aPick.sub.—cat routine 441 acquires the category using the same mechanismpreviously described in relation to Update.sub.—cat. If the user is notlogged, in he or she is logged in, and a new user ID is determined. Aform is then displayed to read in the user's password. A Get.sub.—pwroutine 443 reads in the password and displays a form to read in creditcard information. A Get.sub.—cc routine 445 verifies the credit cardinformation. If the transaction is authorized, it adds the new entryinto the database; otherwise, it rejects the entry.

[0083] The remaining routines are administrative in nature. The user maywish to change his or her password. If the user is not currently loggedin, a login is performed by calling a Changepw.sub.—login routine 447.Changepw.sub.—login reads in the user ID and password and matches themagainst the values in the database. A form is then displayed to read inthe new password. The Changepw routine 411 actually updates the databasewith the new password.

[0084] The Login routine 413 reads in the user ID and password andchecks them against the database. If the user ID and password arecorrect, operation begins at the main page with the user logged in asthe new user.

[0085] It will be appreciated by those of ordinary skill in the art thatthe invention can be embodied in other specific forms without departingfrom the spirit or essential character thereof. The foregoingdescription is therefore considered in all respects to be illustrativeand not restrictive. The scope of the invention is indicated by theappended claims, and all changes which come within the meaning and rangeof equivalents thereof are intended to be embraced therein.

1. A method for facilitating an online transaction comprising:associating, by a web site, a user ID with a user; presenting to theuser a page, said page including at least one item to be purchased andan icon for invoking a purchase service; clicking on said icon by theuser, thereby invoking said purchase service for said item to bepurchased; creating a Transaction ID corresponding to said items to bepurchased; associating, by said purchase service: customer informationcorresponding to said User ID; purchase information corresponding tosaid Transaction ID; and completing said online transaction for saiditems to be purchased.
 2. The method of claim 1, wherein said pagecomprises mini homepage corresponding to said user.
 3. The method ofclaim 2, wherein said mini homepage includes customer informationcorresponding to said user.
 4. The method of claim 3, where saidcustomer information comprises credit card information corresponding tosaid user.
 5. The method of claim 4, wherein said online transaction iscompleted using said credit card information.
 6. The method of claim 5,further including the acts of associating, by said purchase service,shipping information corresponding to said User ID, and shipping saiditems to be purchased to a location corresponding to said shippinginformation.
 7. The method of claim 3, wherein said information may beupdated by said user.
 8. The method of claim 7, wherein said update mayonly be performed receiving a proper password from said user.
 9. Themethod of claim 3, wherein said mini homepage includes contentpredefined by said user.
 10. The method of claim 3, wherein saidinformation includes an email address corresponding to said user. 11.The method of claim 10, wherein said web site utilizes said emailaddress to identify said user.
 12. The method of claim 11, wherein saidpassword is supplied to said email address at the request of said user.13. An apparatus for facilitating an online transaction comprising: aweb site configured for: associating a user ID with a user; presentingto the user a page including at least one item to be purchased and anicon for invoking a purchase service; receive a click on said icon bythe user invoking said purchase service for said item to be purchasedresponsive to said click; creating a Transaction ID corresponding tosaid items to be purchased; associating customer informationcorresponding to said User ID and purchase information corresponding tosaid Transaction ID; and completing said online transaction for saiditems to be purchased.
 14. The apparatus of claim 13, wherein said pagecomprises mini homepage corresponding to said user.
 15. The apparatus ofclaim 14, wherein said mini homepage includes customer informationcorresponding to said user.
 16. The apparatus of claim 15, where saidcustomer information comprises credit card information corresponding tosaid user.
 17. The apparatus of claim 16, wherein said onlinetransaction is completed using said credit card information.
 18. Theapparatus of claim 17, further including the acts of associating, bysaid purchase service, shipping information corresponding to said UserID, and shipping said items to be purchased to a location correspondingto said shipping information.
 19. The apparatus of claim 15, whereinsaid information may be updated by said user.
 20. The apparatus of claim19, wherein said update may only be performed receiving a properpassword from said user.
 21. The apparatus of claim 15, wherein saidmini homepage includes content predefined by said user.
 22. Theapparatus of claim 21, wherein said information includes an emailaddress corresponding to said user.
 23. The apparatus of claim 22,wherein said web site utilizes said email address to identify said user.24. The apparatus of claim 23, wherein said password is supplied to saidemail address at the request of said user.
 25. An apparatus forfacilitating an online transaction comprising: web site means forproviding network connectivity between said web site means and a user;means for associating a user ID with the user; means for presenting tothe user a page including at least one item to be purchased and an iconfor invoking a purchase service; means for detecting a click on saidicon by the user; means for invoking said purchase service for said itemto be purchased responsive to said click; means for creating aTransaction ID corresponding to said items to be purchased; means forassociating customer information corresponding to said User ID andpurchase information corresponding to said Transaction ID; and means forcompleting said online transaction for said items to be purchased.